<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Kinetis Bootloader Host: DataSource.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="nxp_logo_small.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Kinetis Bootloader Host
   &#160;<span id="projectnumber">2.0.0</span>
   </div>
   <div id="projectbrief">Host Tools for Kinetis devices</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Introduction</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('apps_2elftosb_2common_2_data_source_8h_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">apps/elftosb/common/DataSource.h</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * File:    DataSource.h</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Copyright (c) Freescale Semiconductor, Inc. All rights reserved.</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * See included license file for license details.</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#if !defined(_DataSource_h_)</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#define _DataSource_h_</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &quot;Value.h&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &quot;smart_ptr.h&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &quot;StExecutableImage.h&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceelftosb.html">elftosb</a></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;{</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">// Forward declaration</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keyword">class </span>DataTarget;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classelftosb_1_1_data_source.html">   33</a></span>&#160;<span class="keyword">class </span><a class="code" href="classelftosb_1_1_data_source.html">DataSource</a></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classelftosb_1_1_data_source_1_1_segment.html">   42</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classelftosb_1_1_data_source_1_1_segment.html">Segment</a></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    {</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classelftosb_1_1_data_source_1_1_segment.html#a801b56a3290cbe7c4af396f278a191af">   46</a></span>&#160;        <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#a801b56a3290cbe7c4af396f278a191af">Segment</a>(<a class="code" href="classelftosb_1_1_data_source.html">DataSource</a> &amp;source)</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;            : <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#a7b01b961bd65c1ed42ebec1b347f65f9">m_source</a>(source)</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        {</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        }</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classelftosb_1_1_data_source_1_1_segment.html#a20b876cacff9cc0742ee4e6f98cd5d75">   52</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#a20b876cacff9cc0742ee4e6f98cd5d75">~Segment</a>() {}</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#a1575cc50280cfe7081c01d246ead3203">getData</a>(<span class="keywordtype">unsigned</span> offset, <span class="keywordtype">unsigned</span> maxBytes, uint8_t *buffer) = 0;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#aa321cbb52764ab8321453f6d7582a4c1">getLength</a>() = 0;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#a99feece1454e5bb9421a0832c2c13ecc">hasNaturalLocation</a>() = 0;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classelftosb_1_1_data_source_1_1_segment.html#a78a8673663f7f7ccab43951b87c5333f">   72</a></span>&#160;        <span class="keyword">virtual</span> uint32_t <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#a78a8673663f7f7ccab43951b87c5333f">getBaseAddress</a>() { <span class="keywordflow">return</span> 0; }</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keyword">protected</span>:</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classelftosb_1_1_data_source_1_1_segment.html#a7b01b961bd65c1ed42ebec1b347f65f9">   74</a></span>&#160;        <a class="code" href="classelftosb_1_1_data_source.html">DataSource</a> &amp;<a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#a7b01b961bd65c1ed42ebec1b347f65f9">m_source</a>; </div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    };</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classelftosb_1_1_data_source_1_1_pattern_segment.html">   87</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classelftosb_1_1_data_source_1_1_pattern_segment.html">PatternSegment</a> : <span class="keyword">public</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html">Segment</a></div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    {</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        <a class="code" href="classelftosb_1_1_data_source_1_1_pattern_segment.html">PatternSegment</a>(<a class="code" href="classelftosb_1_1_data_source.html">DataSource</a> &amp;source);</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        <a class="code" href="classelftosb_1_1_data_source_1_1_pattern_segment.html">PatternSegment</a>(<a class="code" href="classelftosb_1_1_data_source.html">DataSource</a> &amp;source, <span class="keyword">const</span> <a class="code" href="classelftosb_1_1_sized_integer_value.html">SizedIntegerValue</a> &amp;pattern);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        <a class="code" href="classelftosb_1_1_data_source_1_1_pattern_segment.html">PatternSegment</a>(<a class="code" href="classelftosb_1_1_data_source.html">DataSource</a> &amp;source, uint8_t pattern);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <a class="code" href="classelftosb_1_1_data_source_1_1_pattern_segment.html">PatternSegment</a>(<a class="code" href="classelftosb_1_1_data_source.html">DataSource</a> &amp;source, uint16_t pattern);</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <a class="code" href="classelftosb_1_1_data_source_1_1_pattern_segment.html">PatternSegment</a>(<a class="code" href="classelftosb_1_1_data_source.html">DataSource</a> &amp;source, uint32_t pattern);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#a99feece1454e5bb9421a0832c2c13ecc">hasNaturalLocation</a>() { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#a1575cc50280cfe7081c01d246ead3203">getData</a>(<span class="keywordtype">unsigned</span> offset, <span class="keywordtype">unsigned</span> maxBytes, uint8_t *buffer);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#aa321cbb52764ab8321453f6d7582a4c1">getLength</a>();</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> setPattern(<span class="keyword">const</span> <a class="code" href="classelftosb_1_1_sized_integer_value.html">SizedIntegerValue</a> &amp;newPattern) { m_pattern = newPattern; }</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classelftosb_1_1_data_source_1_1_pattern_segment.html#af57ed3dd52e3b50ff0391155447b4c48">  121</a></span>&#160;        <span class="keyword">inline</span> <a class="code" href="classelftosb_1_1_sized_integer_value.html">SizedIntegerValue</a> &amp;<a class="code" href="classelftosb_1_1_data_source_1_1_pattern_segment.html#af57ed3dd52e3b50ff0391155447b4c48">getPattern</a>() { <span class="keywordflow">return</span> m_pattern; }</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classelftosb_1_1_data_source_1_1_pattern_segment.html#a87889618d0b27247868da1530d94d0f2">  123</a></span>&#160;        <a class="code" href="classelftosb_1_1_data_source_1_1_pattern_segment.html">PatternSegment</a> &amp;<a class="code" href="classelftosb_1_1_data_source_1_1_pattern_segment.html#a87889618d0b27247868da1530d94d0f2">operator=</a>(<span class="keyword">const</span> <a class="code" href="classelftosb_1_1_sized_integer_value.html">SizedIntegerValue</a> &amp;value)</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        {</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;            m_pattern = value;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        }</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keyword">protected</span>:</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classelftosb_1_1_data_source_1_1_pattern_segment.html#abbecea8ce49307878b3710e0a9fe6489">  131</a></span>&#160;        <a class="code" href="classelftosb_1_1_sized_integer_value.html">SizedIntegerValue</a> <a class="code" href="classelftosb_1_1_data_source_1_1_pattern_segment.html#abbecea8ce49307878b3710e0a9fe6489">m_pattern</a>; </div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    };</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classelftosb_1_1_data_source.html#ad476743c1db7ddc5f54ef731ad8887b7">  136</a></span>&#160;    <a class="code" href="classelftosb_1_1_data_source.html#ad476743c1db7ddc5f54ef731ad8887b7">DataSource</a>()</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        : <a class="code" href="classelftosb_1_1_data_source.html#adf49cd610662ffafde71f2a01f2a4c1c">m_target</a>(0)</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    {</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    }</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classelftosb_1_1_data_source.html#ab021fdbf752328b7d76f11c92dee2a26">  142</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classelftosb_1_1_data_source.html#ab021fdbf752328b7d76f11c92dee2a26">~DataSource</a>() {}</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classelftosb_1_1_data_source.html#a4de7033cf482381e2938945247f3775b">setTarget</a>(<a class="code" href="classelftosb_1_1_data_target.html">DataTarget</a> *target) { <a class="code" href="classelftosb_1_1_data_source.html#adf49cd610662ffafde71f2a01f2a4c1c">m_target</a> = target; }</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classelftosb_1_1_data_source.html#a46345e60c1233c1eceb3033da4e2a471">  148</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classelftosb_1_1_data_target.html">DataTarget</a> *<a class="code" href="classelftosb_1_1_data_source.html#a46345e60c1233c1eceb3033da4e2a471">getTarget</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classelftosb_1_1_data_source.html#adf49cd610662ffafde71f2a01f2a4c1c">m_target</a>; }</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_data_source.html#a2859f857bf4f27023c9af19a525c36b6">getSegmentCount</a>() = 0;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html">Segment</a> *<a class="code" href="classelftosb_1_1_data_source.html#a70ff7745034672a742e20151cf6171d5">getSegmentAt</a>(<span class="keywordtype">unsigned</span> index) = 0;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classelftosb_1_1_data_source.html#adf49cd610662ffafde71f2a01f2a4c1c">  161</a></span>&#160;    <a class="code" href="classelftosb_1_1_data_target.html">DataTarget</a> *<a class="code" href="classelftosb_1_1_data_source.html#adf49cd610662ffafde71f2a01f2a4c1c">m_target</a>; </div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;};</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classelftosb_1_1_pattern_source.html">  173</a></span>&#160;<span class="keyword">class </span><a class="code" href="classelftosb_1_1_pattern_source.html">PatternSource</a> : <span class="keyword">public</span> <a class="code" href="classelftosb_1_1_data_source.html">DataSource</a>, <span class="keyword">public</span> <a class="code" href="classelftosb_1_1_data_source_1_1_pattern_segment.html">DataSource::PatternSegment</a></div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;{</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <a class="code" href="classelftosb_1_1_pattern_source.html">PatternSource</a>();</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <a class="code" href="classelftosb_1_1_pattern_source.html">PatternSource</a>(<span class="keyword">const</span> <a class="code" href="classelftosb_1_1_sized_integer_value.html">SizedIntegerValue</a> &amp;value);</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classelftosb_1_1_pattern_source.html#ae8eec94943073a43e472572fe327bc73">  183</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_pattern_source.html#ae8eec94943073a43e472572fe327bc73">getSegmentCount</a>() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classelftosb_1_1_pattern_source.html#a3c0bb0a7277c2434c621c4b2cfde10aa">  185</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html">DataSource::Segment</a> *<a class="code" href="classelftosb_1_1_pattern_source.html#a3c0bb0a7277c2434c621c4b2cfde10aa">getSegmentAt</a>(<span class="keywordtype">unsigned</span> index) { <span class="keywordflow">return</span> <span class="keyword">this</span>; }</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classelftosb_1_1_pattern_source.html#aa398cb2319f7b6cb5d5566bf13203134">  187</a></span>&#160;    <a class="code" href="classelftosb_1_1_pattern_source.html">PatternSource</a> &amp;<a class="code" href="classelftosb_1_1_pattern_source.html#aa398cb2319f7b6cb5d5566bf13203134">operator=</a>(<span class="keyword">const</span> <a class="code" href="classelftosb_1_1_sized_integer_value.html">SizedIntegerValue</a> &amp;value)</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    {</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        setPattern(value);</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    }</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;};</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classelftosb_1_1_unmapped_data_source.html">  200</a></span>&#160;<span class="keyword">class </span><a class="code" href="classelftosb_1_1_unmapped_data_source.html">UnmappedDataSource</a> : <span class="keyword">public</span> <a class="code" href="classelftosb_1_1_data_source.html">DataSource</a>, <span class="keyword">public</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html">DataSource::Segment</a></div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;{</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <a class="code" href="classelftosb_1_1_unmapped_data_source.html">UnmappedDataSource</a>();</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <a class="code" href="classelftosb_1_1_unmapped_data_source.html">UnmappedDataSource</a>(<span class="keyword">const</span> uint8_t *data, <span class="keywordtype">unsigned</span> length);</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="keywordtype">void</span> setData(<span class="keyword">const</span> uint8_t *data, <span class="keywordtype">unsigned</span> length);</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classelftosb_1_1_unmapped_data_source.html#a1e6582dcf571d130857b3a29467d71cd">  213</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_unmapped_data_source.html#a1e6582dcf571d130857b3a29467d71cd">getSegmentCount</a>() { <span class="keywordflow">return</span> 1; }</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classelftosb_1_1_unmapped_data_source.html#ac5bbf176928238d464dbdedd9b2ffa28">  215</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html">DataSource::Segment</a> *<a class="code" href="classelftosb_1_1_unmapped_data_source.html#ac5bbf176928238d464dbdedd9b2ffa28">getSegmentAt</a>(<span class="keywordtype">unsigned</span> index) { <span class="keywordflow">return</span> <span class="keyword">this</span>; }</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#a99feece1454e5bb9421a0832c2c13ecc">hasNaturalLocation</a>() { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#a1575cc50280cfe7081c01d246ead3203">getData</a>(<span class="keywordtype">unsigned</span> offset, <span class="keywordtype">unsigned</span> maxBytes, uint8_t *buffer);</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="classelftosb_1_1_unmapped_data_source.html#afc5080c2686f2d0babf1d26b75f223bc">  224</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_unmapped_data_source.html#afc5080c2686f2d0babf1d26b75f223bc">getLength</a>() { <span class="keywordflow">return</span> m_length; }</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classelftosb_1_1_unmapped_data_source.html#a25ef545d156248166c72d20f33f79337">  228</a></span>&#160;    <a class="code" href="group__smart__pointer.html">smart_array_ptr&lt;uint8_t&gt;</a> <a class="code" href="classelftosb_1_1_unmapped_data_source.html#a25ef545d156248166c72d20f33f79337">m_data</a>; </div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classelftosb_1_1_unmapped_data_source.html#a34fe79ed62648597e30b632c5b3983ae">  229</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_unmapped_data_source.html#a34fe79ed62648597e30b632c5b3983ae">m_length</a>;               </div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;};</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classelftosb_1_1_memory_image_data_source.html">  237</a></span>&#160;<span class="keyword">class </span><a class="code" href="classelftosb_1_1_memory_image_data_source.html">MemoryImageDataSource</a> : <span class="keyword">public</span> <a class="code" href="classelftosb_1_1_data_source.html">DataSource</a></div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;{</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <a class="code" href="classelftosb_1_1_memory_image_data_source.html">MemoryImageDataSource</a>(<a class="code" href="class_st_executable_image.html">StExecutableImage</a> *image);</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classelftosb_1_1_memory_image_data_source.html">MemoryImageDataSource</a>();</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_data_source.html#a2859f857bf4f27023c9af19a525c36b6">getSegmentCount</a>();</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html">DataSource::Segment</a> *<a class="code" href="classelftosb_1_1_data_source.html#a70ff7745034672a742e20151cf6171d5">getSegmentAt</a>(<span class="keywordtype">unsigned</span> index);</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classelftosb_1_1_memory_image_data_source_1_1_text_segment.html">  256</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classelftosb_1_1_memory_image_data_source_1_1_text_segment.html">TextSegment</a> : <span class="keyword">public</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html">DataSource::Segment</a></div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    {</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        <a class="code" href="classelftosb_1_1_memory_image_data_source_1_1_text_segment.html">TextSegment</a>(<a class="code" href="classelftosb_1_1_memory_image_data_source.html">MemoryImageDataSource</a> &amp;source, <a class="code" href="class_st_executable_image.html">StExecutableImage</a> *image, <span class="keywordtype">unsigned</span> index);</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#a1575cc50280cfe7081c01d246ead3203">getData</a>(<span class="keywordtype">unsigned</span> offset, <span class="keywordtype">unsigned</span> maxBytes, uint8_t *buffer);</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#aa321cbb52764ab8321453f6d7582a4c1">getLength</a>();</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="classelftosb_1_1_memory_image_data_source_1_1_text_segment.html#aff224e6e16cabab606bd221dcf437aa2">  265</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classelftosb_1_1_memory_image_data_source_1_1_text_segment.html#aff224e6e16cabab606bd221dcf437aa2">hasNaturalLocation</a>() { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        <span class="keyword">virtual</span> uint32_t <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#a78a8673663f7f7ccab43951b87c5333f">getBaseAddress</a>();</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    <span class="keyword">protected</span>:</div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classelftosb_1_1_memory_image_data_source_1_1_text_segment.html#a0372560433e88f15ca6633046d2ae20c">  269</a></span>&#160;        <a class="code" href="class_st_executable_image.html">StExecutableImage</a> *<a class="code" href="classelftosb_1_1_memory_image_data_source_1_1_text_segment.html#a0372560433e88f15ca6633046d2ae20c">m_image</a>; </div><div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="classelftosb_1_1_memory_image_data_source_1_1_text_segment.html#a6a4aec21cddd8b0a264ceb776e76c35c">  270</a></span>&#160;        <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_memory_image_data_source_1_1_text_segment.html#a6a4aec21cddd8b0a264ceb776e76c35c">m_index</a>;           </div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    };</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="classelftosb_1_1_memory_image_data_source_1_1_fill_segment.html">  276</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classelftosb_1_1_memory_image_data_source_1_1_fill_segment.html">FillSegment</a> : <span class="keyword">public</span> <a class="code" href="classelftosb_1_1_data_source_1_1_pattern_segment.html">DataSource::PatternSegment</a></div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    {</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        <a class="code" href="classelftosb_1_1_memory_image_data_source_1_1_fill_segment.html">FillSegment</a>(<a class="code" href="classelftosb_1_1_memory_image_data_source.html">MemoryImageDataSource</a> &amp;source, <a class="code" href="class_st_executable_image.html">StExecutableImage</a> *image, <span class="keywordtype">unsigned</span> index);</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#aa321cbb52764ab8321453f6d7582a4c1">getLength</a>();</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="classelftosb_1_1_memory_image_data_source_1_1_fill_segment.html#aaa2dd0e762086d072cb6f7cde61f3225">  283</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classelftosb_1_1_memory_image_data_source_1_1_fill_segment.html#aaa2dd0e762086d072cb6f7cde61f3225">hasNaturalLocation</a>() { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        <span class="keyword">virtual</span> uint32_t <a class="code" href="classelftosb_1_1_data_source_1_1_segment.html#a78a8673663f7f7ccab43951b87c5333f">getBaseAddress</a>();</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    <span class="keyword">protected</span>:</div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classelftosb_1_1_memory_image_data_source_1_1_fill_segment.html#a371018bf52d75c67ee84cb7f0ea1c36e">  287</a></span>&#160;        <a class="code" href="class_st_executable_image.html">StExecutableImage</a> *<a class="code" href="classelftosb_1_1_memory_image_data_source_1_1_fill_segment.html#a371018bf52d75c67ee84cb7f0ea1c36e">m_image</a>; </div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="classelftosb_1_1_memory_image_data_source_1_1_fill_segment.html#aa02aca1412de5623c4a3685cc3e3a89f">  288</a></span>&#160;        <span class="keywordtype">unsigned</span> <a class="code" href="classelftosb_1_1_memory_image_data_source_1_1_fill_segment.html#aa02aca1412de5623c4a3685cc3e3a89f">m_index</a>;           </div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    };</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="classelftosb_1_1_memory_image_data_source.html#a975fa37e5a5d8d207d9f96dfe5bdf609">  292</a></span>&#160;    <a class="code" href="class_st_executable_image.html">StExecutableImage</a> *<a class="code" href="classelftosb_1_1_memory_image_data_source.html#a975fa37e5a5d8d207d9f96dfe5bdf609">m_image</a>; </div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classelftosb_1_1_memory_image_data_source.html#a020282fc1ba3880d2e9c56beb32493ec">  294</a></span>&#160;    <span class="keyword">typedef</span> std::vector&lt;DataSource::Segment *&gt; <a class="code" href="classelftosb_1_1_memory_image_data_source.html#a020282fc1ba3880d2e9c56beb32493ec">segment_array_t</a>; </div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classelftosb_1_1_memory_image_data_source.html#a3056c5e4742a0b34ee10b02ab7f0cee9">  295</a></span>&#160;    segment_array_t <a class="code" href="classelftosb_1_1_memory_image_data_source.html#a3056c5e4742a0b34ee10b02ab7f0cee9">m_segments</a>;                                 </div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;};</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;}; <span class="comment">// namespace elftosb</span></div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;<span class="preprocessor">#endif // _DataSource_h_</span></div><div class="ttc" id="classelftosb_1_1_data_source_html"><div class="ttname"><a href="classelftosb_1_1_data_source.html">elftosb::DataSource</a></div><div class="ttdoc">Abstract base class for data sources. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:33</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_html_ad476743c1db7ddc5f54ef731ad8887b7"><div class="ttname"><a href="classelftosb_1_1_data_source.html#ad476743c1db7ddc5f54ef731ad8887b7">elftosb::DataSource::DataSource</a></div><div class="ttdeci">DataSource()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:136</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_html_ab021fdbf752328b7d76f11c92dee2a26"><div class="ttname"><a href="classelftosb_1_1_data_source.html#ab021fdbf752328b7d76f11c92dee2a26">elftosb::DataSource::~DataSource</a></div><div class="ttdeci">virtual ~DataSource()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:142</div></div>
<div class="ttc" id="classelftosb_1_1_unmapped_data_source_html"><div class="ttname"><a href="classelftosb_1_1_unmapped_data_source.html">elftosb::UnmappedDataSource</a></div><div class="ttdoc">Data source for data that is not memory mapped (has no natural address). </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:200</div></div>
<div class="ttc" id="classelftosb_1_1_memory_image_data_source_1_1_text_segment_html"><div class="ttname"><a href="classelftosb_1_1_memory_image_data_source_1_1_text_segment.html">elftosb::MemoryImageDataSource::TextSegment</a></div><div class="ttdoc">Segment corresponding to a text region of the executable image. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:256</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_1_1_pattern_segment_html_abbecea8ce49307878b3710e0a9fe6489"><div class="ttname"><a href="classelftosb_1_1_data_source_1_1_pattern_segment.html#abbecea8ce49307878b3710e0a9fe6489">elftosb::DataSource::PatternSegment::m_pattern</a></div><div class="ttdeci">SizedIntegerValue m_pattern</div><div class="ttdoc">The fill pattern. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:131</div></div>
<div class="ttc" id="classelftosb_1_1_pattern_source_html_a3c0bb0a7277c2434c621c4b2cfde10aa"><div class="ttname"><a href="classelftosb_1_1_pattern_source.html#a3c0bb0a7277c2434c621c4b2cfde10aa">elftosb::PatternSource::getSegmentAt</a></div><div class="ttdeci">virtual DataSource::Segment * getSegmentAt(unsigned index)</div><div class="ttdoc">Returns this object, as it is its own segment. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:185</div></div>
<div class="ttc" id="group__smart__pointer_html"><div class="ttname"><a href="group__smart__pointer.html">smart_array_ptr&lt; uint8_t &gt;</a></div></div>
<div class="ttc" id="classelftosb_1_1_unmapped_data_source_html_ac5bbf176928238d464dbdedd9b2ffa28"><div class="ttname"><a href="classelftosb_1_1_unmapped_data_source.html#ac5bbf176928238d464dbdedd9b2ffa28">elftosb::UnmappedDataSource::getSegmentAt</a></div><div class="ttdeci">virtual DataSource::Segment * getSegmentAt(unsigned index)</div><div class="ttdoc">Returns this object, as it is its own segment. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:215</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_1_1_pattern_segment_html_af57ed3dd52e3b50ff0391155447b4c48"><div class="ttname"><a href="classelftosb_1_1_data_source_1_1_pattern_segment.html#af57ed3dd52e3b50ff0391155447b4c48">elftosb::DataSource::PatternSegment::getPattern</a></div><div class="ttdeci">SizedIntegerValue &amp; getPattern()</div><div class="ttdoc">Return the fill pattern for the segment. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:121</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_1_1_segment_html_a78a8673663f7f7ccab43951b87c5333f"><div class="ttname"><a href="classelftosb_1_1_data_source_1_1_segment.html#a78a8673663f7f7ccab43951b87c5333f">elftosb::DataSource::Segment::getBaseAddress</a></div><div class="ttdeci">virtual uint32_t getBaseAddress()</div><div class="ttdoc">Returns the address associated with the segment. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:72</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_html_adf49cd610662ffafde71f2a01f2a4c1c"><div class="ttname"><a href="classelftosb_1_1_data_source.html#adf49cd610662ffafde71f2a01f2a4c1c">elftosb::DataSource::m_target</a></div><div class="ttdeci">DataTarget * m_target</div><div class="ttdoc">Corresponding target for this source. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:161</div></div>
<div class="ttc" id="classelftosb_1_1_memory_image_data_source_html_a3056c5e4742a0b34ee10b02ab7f0cee9"><div class="ttname"><a href="classelftosb_1_1_memory_image_data_source.html#a3056c5e4742a0b34ee10b02ab7f0cee9">elftosb::MemoryImageDataSource::m_segments</a></div><div class="ttdeci">segment_array_t m_segments</div><div class="ttdoc">The array of Segment instances. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:295</div></div>
<div class="ttc" id="classelftosb_1_1_memory_image_data_source_1_1_fill_segment_html_a371018bf52d75c67ee84cb7f0ea1c36e"><div class="ttname"><a href="classelftosb_1_1_memory_image_data_source_1_1_fill_segment.html#a371018bf52d75c67ee84cb7f0ea1c36e">elftosb::MemoryImageDataSource::FillSegment::m_image</a></div><div class="ttdeci">StExecutableImage * m_image</div><div class="ttdoc">Coalesced image of the file. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:287</div></div>
<div class="ttc" id="class_st_executable_image_html"><div class="ttname"><a href="class_st_executable_image.html">StExecutableImage</a></div><div class="ttdoc">Used to build a representation of memory regions. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/StExecutableImage.h:27</div></div>
<div class="ttc" id="classelftosb_1_1_pattern_source_html_aa398cb2319f7b6cb5d5566bf13203134"><div class="ttname"><a href="classelftosb_1_1_pattern_source.html#aa398cb2319f7b6cb5d5566bf13203134">elftosb::PatternSource::operator=</a></div><div class="ttdeci">PatternSource &amp; operator=(const SizedIntegerValue &amp;value)</div><div class="ttdoc">Assignment operator, sets the pattern value and length. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:187</div></div>
<div class="ttc" id="classelftosb_1_1_memory_image_data_source_html"><div class="ttname"><a href="classelftosb_1_1_memory_image_data_source.html">elftosb::MemoryImageDataSource</a></div><div class="ttdoc">Data source that takes its data from an executable image. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:237</div></div>
<div class="ttc" id="classelftosb_1_1_sized_integer_value_html"><div class="ttname"><a href="classelftosb_1_1_sized_integer_value.html">elftosb::SizedIntegerValue</a></div><div class="ttdoc">Adds a word size attribute to IntegerValue. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/Value.h:72</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_1_1_segment_html_a1575cc50280cfe7081c01d246ead3203"><div class="ttname"><a href="classelftosb_1_1_data_source_1_1_segment.html#a1575cc50280cfe7081c01d246ead3203">elftosb::DataSource::Segment::getData</a></div><div class="ttdeci">virtual unsigned getData(unsigned offset, unsigned maxBytes, uint8_t *buffer)=0</div><div class="ttdoc">Gets all or a portion of the segment&amp;#39;s data. </div></div>
<div class="ttc" id="classelftosb_1_1_memory_image_data_source_1_1_text_segment_html_aff224e6e16cabab606bd221dcf437aa2"><div class="ttname"><a href="classelftosb_1_1_memory_image_data_source_1_1_text_segment.html#aff224e6e16cabab606bd221dcf437aa2">elftosb::MemoryImageDataSource::TextSegment::hasNaturalLocation</a></div><div class="ttdeci">virtual bool hasNaturalLocation()</div><div class="ttdoc">Returns whether the segment has an associated address. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:265</div></div>
<div class="ttc" id="namespaceelftosb_html"><div class="ttname"><a href="namespaceelftosb.html">elftosb</a></div><div class="ttdef"><b>Definition:</b> BootImage.h:13</div></div>
<div class="ttc" id="classelftosb_1_1_pattern_source_html"><div class="ttname"><a href="classelftosb_1_1_pattern_source.html">elftosb::PatternSource</a></div><div class="ttdoc">Data source for a repeating pattern. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:173</div></div>
<div class="ttc" id="classelftosb_1_1_memory_image_data_source_1_1_text_segment_html_a6a4aec21cddd8b0a264ceb776e76c35c"><div class="ttname"><a href="classelftosb_1_1_memory_image_data_source_1_1_text_segment.html#a6a4aec21cddd8b0a264ceb776e76c35c">elftosb::MemoryImageDataSource::TextSegment::m_index</a></div><div class="ttdeci">unsigned m_index</div><div class="ttdoc">Record index. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:270</div></div>
<div class="ttc" id="classelftosb_1_1_data_target_html"><div class="ttname"><a href="classelftosb_1_1_data_target.html">elftosb::DataTarget</a></div><div class="ttdoc">Abstract base class for the target address or range of data. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataTarget.h:34</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_1_1_pattern_segment_html"><div class="ttname"><a href="classelftosb_1_1_data_source_1_1_pattern_segment.html">elftosb::DataSource::PatternSegment</a></div><div class="ttdoc">This is a special type of segment containing a repeating pattern. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:87</div></div>
<div class="ttc" id="classelftosb_1_1_memory_image_data_source_html_a020282fc1ba3880d2e9c56beb32493ec"><div class="ttname"><a href="classelftosb_1_1_memory_image_data_source.html#a020282fc1ba3880d2e9c56beb32493ec">elftosb::MemoryImageDataSource::segment_array_t</a></div><div class="ttdeci">std::vector&lt; DataSource::Segment * &gt; segment_array_t</div><div class="ttdoc">An array of segments. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:294</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_1_1_segment_html_aa321cbb52764ab8321453f6d7582a4c1"><div class="ttname"><a href="classelftosb_1_1_data_source_1_1_segment.html#aa321cbb52764ab8321453f6d7582a4c1">elftosb::DataSource::Segment::getLength</a></div><div class="ttdeci">virtual unsigned getLength()=0</div><div class="ttdoc">Gets the length of the segment&amp;#39;s data. </div></div>
<div class="ttc" id="classelftosb_1_1_memory_image_data_source_1_1_text_segment_html_a0372560433e88f15ca6633046d2ae20c"><div class="ttname"><a href="classelftosb_1_1_memory_image_data_source_1_1_text_segment.html#a0372560433e88f15ca6633046d2ae20c">elftosb::MemoryImageDataSource::TextSegment::m_image</a></div><div class="ttdeci">StExecutableImage * m_image</div><div class="ttdoc">Coalesced image of the file. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:269</div></div>
<div class="ttc" id="classelftosb_1_1_memory_image_data_source_1_1_fill_segment_html"><div class="ttname"><a href="classelftosb_1_1_memory_image_data_source_1_1_fill_segment.html">elftosb::MemoryImageDataSource::FillSegment</a></div><div class="ttdoc">Segment corresponding to a fill region of the executable image. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:276</div></div>
<div class="ttc" id="classelftosb_1_1_unmapped_data_source_html_a25ef545d156248166c72d20f33f79337"><div class="ttname"><a href="classelftosb_1_1_unmapped_data_source.html#a25ef545d156248166c72d20f33f79337">elftosb::UnmappedDataSource::m_data</a></div><div class="ttdeci">smart_array_ptr&lt; uint8_t &gt; m_data</div><div class="ttdoc">The data. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:228</div></div>
<div class="ttc" id="classelftosb_1_1_unmapped_data_source_html_afc5080c2686f2d0babf1d26b75f223bc"><div class="ttname"><a href="classelftosb_1_1_unmapped_data_source.html#afc5080c2686f2d0babf1d26b75f223bc">elftosb::UnmappedDataSource::getLength</a></div><div class="ttdeci">virtual unsigned getLength()</div><div class="ttdoc">Returns the number of bytes of data managed by the source. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:224</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_1_1_segment_html_a99feece1454e5bb9421a0832c2c13ecc"><div class="ttname"><a href="classelftosb_1_1_data_source_1_1_segment.html#a99feece1454e5bb9421a0832c2c13ecc">elftosb::DataSource::Segment::hasNaturalLocation</a></div><div class="ttdeci">virtual bool hasNaturalLocation()=0</div><div class="ttdoc">Returns whether the segment has an associated address. </div></div>
<div class="ttc" id="classelftosb_1_1_memory_image_data_source_html_a975fa37e5a5d8d207d9f96dfe5bdf609"><div class="ttname"><a href="classelftosb_1_1_memory_image_data_source.html#a975fa37e5a5d8d207d9f96dfe5bdf609">elftosb::MemoryImageDataSource::m_image</a></div><div class="ttdeci">StExecutableImage * m_image</div><div class="ttdoc">The memory image that is the data source. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:292</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_html_a4de7033cf482381e2938945247f3775b"><div class="ttname"><a href="classelftosb_1_1_data_source.html#a4de7033cf482381e2938945247f3775b">elftosb::DataSource::setTarget</a></div><div class="ttdeci">void setTarget(DataTarget *target)</div><div class="ttdoc">Sets the associated data target. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:146</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_1_1_segment_html"><div class="ttname"><a href="classelftosb_1_1_data_source_1_1_segment.html">elftosb::DataSource::Segment</a></div><div class="ttdoc">Discrete, contiguous part of the source&amp;#39;s data. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:42</div></div>
<div class="ttc" id="classelftosb_1_1_pattern_source_html_ae8eec94943073a43e472572fe327bc73"><div class="ttname"><a href="classelftosb_1_1_pattern_source.html#ae8eec94943073a43e472572fe327bc73">elftosb::PatternSource::getSegmentCount</a></div><div class="ttdeci">virtual unsigned getSegmentCount()</div><div class="ttdoc">There is only one segment. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:183</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_1_1_segment_html_a7b01b961bd65c1ed42ebec1b347f65f9"><div class="ttname"><a href="classelftosb_1_1_data_source_1_1_segment.html#a7b01b961bd65c1ed42ebec1b347f65f9">elftosb::DataSource::Segment::m_source</a></div><div class="ttdeci">DataSource &amp; m_source</div><div class="ttdoc">The data source to which this segment belongs. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:74</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_1_1_segment_html_a801b56a3290cbe7c4af396f278a191af"><div class="ttname"><a href="classelftosb_1_1_data_source_1_1_segment.html#a801b56a3290cbe7c4af396f278a191af">elftosb::DataSource::Segment::Segment</a></div><div class="ttdeci">Segment(DataSource &amp;source)</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:46</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_html_a46345e60c1233c1eceb3033da4e2a471"><div class="ttname"><a href="classelftosb_1_1_data_source.html#a46345e60c1233c1eceb3033da4e2a471">elftosb::DataSource::getTarget</a></div><div class="ttdeci">DataTarget * getTarget() const </div><div class="ttdoc">Gets the associated data target. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:148</div></div>
<div class="ttc" id="classelftosb_1_1_memory_image_data_source_1_1_fill_segment_html_aaa2dd0e762086d072cb6f7cde61f3225"><div class="ttname"><a href="classelftosb_1_1_memory_image_data_source_1_1_fill_segment.html#aaa2dd0e762086d072cb6f7cde61f3225">elftosb::MemoryImageDataSource::FillSegment::hasNaturalLocation</a></div><div class="ttdeci">virtual bool hasNaturalLocation()</div><div class="ttdoc">Pattern segments have no natural address. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:283</div></div>
<div class="ttc" id="classelftosb_1_1_memory_image_data_source_1_1_fill_segment_html_aa02aca1412de5623c4a3685cc3e3a89f"><div class="ttname"><a href="classelftosb_1_1_memory_image_data_source_1_1_fill_segment.html#aa02aca1412de5623c4a3685cc3e3a89f">elftosb::MemoryImageDataSource::FillSegment::m_index</a></div><div class="ttdeci">unsigned m_index</div><div class="ttdoc">Record index. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:288</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_html_a70ff7745034672a742e20151cf6171d5"><div class="ttname"><a href="classelftosb_1_1_data_source.html#a70ff7745034672a742e20151cf6171d5">elftosb::DataSource::getSegmentAt</a></div><div class="ttdeci">virtual Segment * getSegmentAt(unsigned index)=0</div><div class="ttdoc">Returns segment number index of the data source. </div></div>
<div class="ttc" id="classelftosb_1_1_data_source_1_1_pattern_segment_html_a87889618d0b27247868da1530d94d0f2"><div class="ttname"><a href="classelftosb_1_1_data_source_1_1_pattern_segment.html#a87889618d0b27247868da1530d94d0f2">elftosb::DataSource::PatternSegment::operator=</a></div><div class="ttdeci">PatternSegment &amp; operator=(const SizedIntegerValue &amp;value)</div><div class="ttdoc">Assignment operator, sets the pattern value and length. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:123</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_1_1_segment_html_a20b876cacff9cc0742ee4e6f98cd5d75"><div class="ttname"><a href="classelftosb_1_1_data_source_1_1_segment.html#a20b876cacff9cc0742ee4e6f98cd5d75">elftosb::DataSource::Segment::~Segment</a></div><div class="ttdeci">virtual ~Segment()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:52</div></div>
<div class="ttc" id="classelftosb_1_1_data_source_html_a2859f857bf4f27023c9af19a525c36b6"><div class="ttname"><a href="classelftosb_1_1_data_source.html#a2859f857bf4f27023c9af19a525c36b6">elftosb::DataSource::getSegmentCount</a></div><div class="ttdeci">virtual unsigned getSegmentCount()=0</div><div class="ttdoc">Returns the number of segments in this data source. </div></div>
<div class="ttc" id="classelftosb_1_1_unmapped_data_source_html_a1e6582dcf571d130857b3a29467d71cd"><div class="ttname"><a href="classelftosb_1_1_unmapped_data_source.html#a1e6582dcf571d130857b3a29467d71cd">elftosb::UnmappedDataSource::getSegmentCount</a></div><div class="ttdeci">virtual unsigned getSegmentCount()</div><div class="ttdoc">There is only one segment. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:213</div></div>
<div class="ttc" id="classelftosb_1_1_unmapped_data_source_html_a34fe79ed62648597e30b632c5b3983ae"><div class="ttname"><a href="classelftosb_1_1_unmapped_data_source.html#a34fe79ed62648597e30b632c5b3983ae">elftosb::UnmappedDataSource::m_length</a></div><div class="ttdeci">unsigned m_length</div><div class="ttdoc">Byte count of the data. </div><div class="ttdef"><b>Definition:</b> apps/elftosb/common/DataSource.h:229</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_96c2f84c885cff71a930b6845f88cdd3.html">elftosb</a></li><li class="navelem"><a class="el" href="dir_c476059e18722267e10e2fb2cca6f785.html">common</a></li><li class="navelem"><b>DataSource.h</b></li>
    <li class="footer">Generated on Mon Mar 7 2016 16:49:49 for Kinetis Bootloader Host by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
